1. Field of the Invention
The present invention relates to a computer system and a method of issuing input/output commands therefrom, and more specifically to a computer system capable of giving a plurality of input/output commands to a plurality of input/output devices respectively as one input/output start command and to a method of issuing the input/output commands therefrom.
2. Description of the Related Art
A method of controlling input/output devices employed in a conventional computer system will be described below. A main CPU (Central Processing Unit) sends an input/output command to one of input/output devices upon executing an input/output operation. Correspondingly, the input/output device starts processing. After the input/output command has been sent to its corresponding input/output device, the main CPU can-execute other processes until the transfer of input/output data is completed. When the processing is completed, the input/output device notifies the completion of processing to the main CPU in response to an interruption.
The above method can take a load off the main CPU. In an actual computer, an input/output adapter (called "input/output channel" depending on the computer) is interposed between a main CPU and each input/output device. Further, a plurality of input/output devices are electrically connected to the input/output adapter.
FIG. 39 illustrates a channel interface described in a technical literature "Computer Organization and the System/370" by Harry Katzan Jr., Van Noatrand Reinhold Company, 1971. An input/output architecture associated with input/output devices using an input/output channel will be described with reference to the same drawing.
The main CPU issues an input/output start command 20 to start an input/output operation. The input/output start command 20 includes a command code, a channel address and a device address. The channel address and the device address are of addresses for designating or specifying both an input/output device for performing the input/output operation and an input/output channel.
A CAW (Channel Address Word) 21 is located in a specific address on a main memory and stores an address for the first CCW (Channel Command Word) 22, which is located on the main memory. The CCW 22 provides information about an input/output operation to be executed for an input/output channel. Each CCW 22 comprises a command code, a data address, a count and a flag. The flag includes a cd flag and a cc flag.
The command code of the CCW 22 designates or specifies an operation to be executed such as input/output or the like. The data address specifies a leading or head address of each data 23 that is an object for the input/output operation. The count specifies the number of bytes used for the input/output operation.
The cd flag specifies a data chain. The data chain shows that the same input/output operation is executed with respect to a data region or area different from others in a CCW to be continued next. The cc flag specifies a command chain. The command chain shows that a separate input/output operation in the CCW to be continued next is executed. When all the bits of the flag are 0, the corresponding CCW 22 represents the last CCW.
A CSW (Channel Status Word) 24 is recorded after reception of an input/output interruption or an input/output start command. The CSW 24 shows a state (busy or the like) of an input/output device or an input/output channel.
A procedure of executing input/output operations through the above input/output interface will be described below. The main CPU is firstly activated as follows:
1 Create a required CCW 22. It may be prepared in advance or may be created when a program is being executed. There is a case in which a series of a plurality of CCWs 22 called "channel program" are used as shown in FIG. 39.
2 Set the CAW 21 (set an address for the leading CCW 22).
3 Load the channel address and the device address.
4 Prohibit the input/output interruption.
5 Issue the input/output start command 20.
After the main CPU has issued the input/output start command 20 as described above, the input/output channel of the computer system is activated as follows:
1 The channel takes out a CAW 21 and checks whether it is proper.
2 The channel takes out a CCW 22 and checks whether it is proper.
3 Execute an input/output operation with respect to a designated or specified device.
4 Allows a CSW 24 to record completion information about the input/output operation.
5 The channel triggers an input/output interruption.
In the aforementioned input/output interface, a plurality of times of input/output operations with respect to a single input/output device can be continuously carried out by issuing an input/output start command (corresponding to a set of a series of CCWs 22 shown in FIG. 39). Now, consider where the input/output operations with respect to the plurality of input/output devices are continuously executed through the conventional input/output interface referred to above.
FIG. 40 is a view for describing the procedure of input/output operations at an input/output interface to a plurality of input/output devices via an input/output adapter (input/output channel). FIG. 40 particularly shows a case where an input/output command 1 relative to a device 1 and an input/output command 2 relative to another device 2 are continuously issued.
First of all, a CPU issues an input/output command 1 and the input/output adapter performs input/output processes along with the device 1 in response to the input/output command 1. While the input/output adapter is performing the input/output processes along with the device 1, the CPU can execute other processes. When the input/output processes along with the device 1 are completed, the input/output adapter issues an interrupt and the CPU performs interrupt processing 1. As a result, an input/output operation is completed. Subsequently, the CPU issues an input/output command 2 and hence input/output processes along with the device 2 are executed in the same manner as described above.
Thus, since the input/output operation of the conventional input/output device is one of such a type that an input/output command to a single input/output device is issued, other processes are executed and the completion of operation of the corresponding input/output device is notified by an interrupt, the input/output command must be issued again when the input/output operation is continuously made to an input/output device different from the above input/output device. In other words, it is necessary to issue the input/output command at each input/output device.